package org.yzz.base.util;

import org.apache.commons.lang3.StringUtils;
import org.yzz.org.domain.Employee;
import org.yzz.org.domain.Shop;

import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;

public class LoginContext {
    public static Map<String, Object> map = new HashMap<>();

    /**
     * 在登录成功以后,将登录信息写入redis/map 等中
     */
    public static void setLoginUser(HttpServletRequest request) {


    }

    /**
     * 获取当前登录人信息
     */
    public static Employee getLoginUser(HttpServletRequest request) {
        // 1获取请求头中的token
        String token = request.getHeader("token");
        // 2如果token为空，在项目中应该返回错误信息，在开发阶段,我们可以先写死登录信息先进行开发测试
        if(StringUtils.isBlank(token)){
            Employee employee = new Employee();
            employee.setId(340L);
            employee.setUsername("我是超人");
            Shop shop = new Shop();
            shop.setId(48L);
            shop.setName("姚桑的小店铺");
            employee.setShop(shop);
            return employee;
        }
        // 3如果token不为空,则从map/redis中获取登录信息
        Object obj = map.get("token");
        // 4如果登录信息为空，在项目中应该返回错误信息，在开发阶段,我们可以先写死登录信息先进行开发测试
        if (Objects.isNull(obj)){
            Employee employee = new Employee();
            employee.setId(340L);
            employee.setUsername("我是超人");
            Shop shop = new Shop();
            shop.setId(48L);
            shop.setName("姚桑的小店铺");
            employee.setShop(shop);
            return employee;
        }
        // 5如果登录信息不为空,则直接返回登录信息
        return (Employee) obj;
    }

}
